package com.heh.mybatisplus.model;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @项目名： spring-emq
 * @包名： com.heh.mybatisplus.model
 * @文件名: Shop
 * @创建者: liufudong@szyh-smart.com
 * @创建时间: 2024/10/9 10:57
 * @描述：
 */
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
@TableName("shop")
@Schema(description = "com-example-demo-pojo-Shop")
public class Shop {
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Integer id;

    @TableField(value = "count")
    @Schema(description="商品数量")
    private Integer count;

    @TableField(value = "shop_name")
    @Schema(description="商品名")
    private String shopName;

    //在数据库更新时，使用 版本号（version） 机制来保证数据一致性。每次更新时，检查版本号是否一致，不一致则抛出更新失败的异常，确保不会有并发写覆盖的问题。
    @TableField(value = "version")
    @Schema(description="版本号")
    @Version // 标注乐观锁的版本字段
    private int version;

}
